3.1.2 Komprimert omkoding - inrange
I tillegg til inlist
, finnes det en annen logisk funksjon som kan gjøre det lettere å lage betingelser basert på intervaller: inrange
.
If-betingelser som baserer seg på intervaller blir sjeldent særlig lange, siden man som oftest bare trenger å spesifisere en minimums- og en maksimumsverdi. Men dersom man opererer med flere intervaller i ett og samme if-uttrykk, kan inrange
være nyttig. Uansett blir generate
- evt. replace
-uttrykket mer komprimert i forhold til vanlige if-uttrykk ved bruk av denne funksjonen.
Den logiske funksjonen inrange
settes til 1 ("true") dersom verdien i det første argumentet er høyere enn eller lik verdien i det andre argumentet og lavere enn eller lik verdien i det tredje argumentet.
Argumentene til funksjonen kan være både variabler og verdier (alle typer).
Eksempel:
generate var = 1 if inrange(formue, 500000, 1000000)
(inrange-funksjonen = 1 ("true") dersom formue er større enn eller lik 500000 og mindre enn eller lik 1000000)
Eksempelet over tilsvarer dette uttrykket:
generate var = 1 if formue >= 500000 & formue <= 1000000